package com.transaction.demo.base.biz.impl;

import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.transaction.demo.base.biz.SysRoleMenuBiz;
import com.transaction.demo.base.dao.SysRoleMenuDao;
import com.transaction.demo.base.entity.SysRoleMenuBean;
import com.transaction.demo.base.vo.req.SysRoleMenuAddReqVo;
import com.transaction.demo.base.vo.req.SysRoleMenuListReqVo;

/**
 * 描述：角色和菜单关联表
 * 作者：马庆智
 * 日期：2023/03/28 17:07:14
 */
@Service
public class SysRoleMenuBizImpl implements SysRoleMenuBiz {

	@Autowired
	private SysRoleMenuDao sysRoleMenuDao;

	/**
	 * 查询角色和菜单关联表列表
	 *
	 * @param sysRoleMenu 请求参数
	 * @return SysRoleMenuResp
	 * @author 马庆智
	 * @date: 2023/03/28 17:07:14
	 */
	@Override
	public List<Integer> querySysRoleMenuList(SysRoleMenuListReqVo sysRoleMenu) {

		return sysRoleMenuDao.querySysRoleMenuList(SysRoleMenuBean.builder().roleId(sysRoleMenu.getRoleId()).build())
				.stream().map(SysRoleMenuBean::getMenuId).collect(Collectors.toList());

	}

	/**
	 * 添加角色和菜单关联表
	 *
	 * @param sysRoleMenu 请求参数
	 * @return int
	 * @author 马庆智
	 * @date: 2023/03/28 17:07:14
	 */
	@Override
	public int saveSysRoleMenu(SysRoleMenuAddReqVo sysRoleMenu) {

		return sysRoleMenuDao.saveSysRoleMenu(
				SysRoleMenuBean.builder().roleId(sysRoleMenu.getRoleId()).menuId(sysRoleMenu.getMenuId())
						.createdBy("koobe").createdDate(new Date()).build());
	}

	/**
	 * 删除角色和菜单关联表
	 *
	 * @param roleId 请求参数
	 * @return int
	 * @author 马庆智
	 * @date: 2023/03/28 17:07:14
	 */
	@Override
	public int deleteSysRoleMenu(Integer roleId) {
		return sysRoleMenuDao.deleteSysRoleMenu(roleId);
	}

}